#ifndef LILYPOND_WRITER_H
#define LILYPOND_WRITER_H

#include <QString>

#include "core/music_settings.h"

class MusicConstraints;

/*!
 * Permet d'écrire un fichier au format Lilypond à partir des données d'un CSP
 */
class LilyPondWriter {
  public:
    enum Usage {
      INTERNAL,
      LILYPOND,
      PDF
    };

    LilyPondWriter(MusicSettings *, MusicConstraints *);

    void write(QString, Usage);

  private:
    MusicSettings *settings;
    MusicConstraints *constraints;

    QString pitchToString(int, MusicSettings::Scale, MusicSettings::Mode);
};

#endif
